<!--<template>-->
<!--  <div class="jobIndex">-->
<!--    <basic-container>-->
<!--      <avue-crud-->
<!--        ref="crud"-->
<!--        :page="page"-->
<!--        v-model="form"-->
<!--        :data="tableData"-->
<!--        :table-loading="tableLoading"-->
<!--        :option="tableOption"-->
<!--        @on-load="getList"-->
<!--        @row-save="save"-->
<!--        @row-update="update"-->
<!--        @refresh-change="refreshChange"-->
<!--        @size-change="sizeChange"-->
<!--        @current-change="currentChange"-->
<!--        @search-change="handleFilter"-->
<!--        @search-reset="handleSearchReset">-->
<!--        <template slot-scope="scope" slot="jobStatus">-->
<!--          <div v-if="scope.row.jobStatus === '1'">-->
<!--            <el-tag type="info">{{ getDicNameJobStatus(scope.row.jobStatus) }}</el-tag>-->
<!--          </div>-->
<!--          <div v-else-if="scope.row.jobStatus === '2'">-->
<!--            <el-tag type="success">{{ getDicNameJobStatus(scope.row.jobStatus) }}</el-tag>-->
<!--          </div>-->
<!--          <div v-else-if="scope.row.jobStatus === '3'">-->
<!--            <el-tag type="danger">{{ getDicNameJobStatus(scope.row.jobStatus) }}</el-tag>-->
<!--          </div>-->
<!--        </template>-->
<!--        <template slot-scope="scope" slot="jobExecuteStatus">-->
<!--          <div v-if="scope.row.jobExecuteStatus === '0'">-->
<!--            <el-tag type="success">{{ getDicNameJobExecuteStatus(scope.row.jobExecuteStatus) }}</el-tag>-->
<!--          </div>-->
<!--          <div v-else>-->
<!--            <el-tag type="danger">{{ getDicNameJobExecuteStatus(scope.row.jobExecuteStatus) }}</el-tag>-->
<!--          </div>-->
<!--        </template>-->
<!--        <template slot="cronExpressionForm" slot-scope="scope">-->
<!--          <div class="cron">-->
<!--            <el-popover v-model="cronPopover">-->
<!--              <cron i18n="cn" @change="changeCron" @close="cronPopover=false"/>-->
<!--              <el-input-->
<!--                slot="reference"-->
<!--                v-model="form.cronExpression"-->
<!--                placeholder="请输入定时策略"-->
<!--                @click="cronPopover=true"/>-->
<!--            </el-popover>-->
<!--          </div>-->
<!--        </template>-->
<!--        <template slot="menuLeft">-->
<!--          <el-button v-if="permissions.job_sys_job_add" type="primary" @click="handleAdd">-->
<!--            新建任务-->
<!--          </el-button>-->
<!--          <el-tooltip content="暂停全部运行状态的定时任务" placement="top">-->
<!--            <el-button v-if="permissions.job_sys_job_shutdown_job" type="warning" @click="shutdownJobs">-->
<!--              暂停全部任务-->
<!--            </el-button>-->
<!--          </el-tooltip>-->
<!--          <el-tooltip content="启动全部暂停状态的定时任务" placement="top">-->
<!--            <el-button v-if="permissions.job_sys_job_start_job" type="success" @click="startJobs">-->
<!--              启动全部任务-->
<!--            </el-button>-->
<!--          </el-tooltip>-->
<!--          <el-tooltip content="谨慎使用" placement="top">-->
<!--            <el-button v-if="permissions.job_sys_job_refresh_job" type="danger" @click="refreshJobs">重置全部任务-->
<!--            </el-button>-->
<!--          </el-tooltip>-->
<!--        </template>-->
<!--        <template-->
<!--          slot="menu"-->
<!--          slot-scope="scope">-->
<!--          <el-button-->
<!--            type="text"-->
<!--            icon="el-icon-info"-->
<!--            @click="handleJobLog(scope.row)">日志-->
<!--          </el-button>-->
<!--          <el-button-->
<!--            v-if="permissions.job_sys_job_start_job"-->
<!--            type="text"-->
<!--            icon="el-icon-caret-right"-->
<!--            @click="handleStartJob(scope.row)">启动-->
<!--          </el-button>-->

<!--          <el-button-->
<!--            v-if="permissions.job_sys_job_shutdown_job"-->
<!--            type="text"-->
<!--            icon="el-icon-error"-->
<!--            @click="handleShutDownJob(scope.row)">暂停-->
<!--          </el-button>-->
<!--          <el-button-->
<!--            v-if="permissions.job_sys_job_edit"-->
<!--            type="text"-->
<!--            icon="el-icon-edit"-->
<!--            @click="handleUpdate(scope.row,scope.index)">修改-->
<!--          </el-button>-->
<!--          <el-button-->
<!--            v-if="permissions.job_sys_job_run_job"-->
<!--            type="text"-->
<!--            icon="el-icon-s-promotion"-->
<!--            @click="handleRunJob(scope.row)">执行-->
<!--          </el-button>-->
<!--          <el-button-->
<!--            v-if="permissions.job_sys_job_del"-->
<!--            type="text"-->
<!--            icon="el-icon-delete"-->
<!--            @click="handleDelete(scope.row,scope.index)">删除-->
<!--          </el-button>-->
<!--        </template>-->
<!--      </avue-crud>-->
<!--    </basic-container>-->
<!--    <jobLog v-if="dialogFormVisible" ref="logRef"></jobLog>-->
<!--  </div>-->

<!--</template>-->

<!--<script>-->
<!--  import {-->
<!--    addObj, delObj, fetchList, isValidTaskName, putObj, refreshJobsRa,-->
<!--    runJobRa, shutDownJobRa, shutdownJobsRa, startJobRa, startJobsRa,remote-->
<!--  } from '@/api/system/sys-job'-->
<!--  import {tableOption} from '@/const/crud/daemon/sys-job'-->
<!--  // import {remote} from '@/api/admin/dict'-->
<!--  import {mapGetters} from 'vuex'-->
<!--  import {cron} from 'vue-cron'-->
<!--  import jobLog from './job-log'-->

<!--  export default {-->
<!--    name: 'jobIndex',-->
<!--    components: {cron, jobLog},-->
<!--    data() {-->
<!--      return {-->
<!--        form: {},-->
<!--        cronPopover: false,-->
<!--        queryParams: {}, // 全局检索条件-->
<!--        tableData: [],-->
<!--        dialogFormVisible: false,-->
<!--        jobId: '',-->
<!--        page: {-->
<!--          total: 0, // 总页数-->
<!--          currentPage: 1, // 当前页数-->
<!--          pageSize: 10 // 每页显示多少条,-->
<!--        },-->
<!--        tableLoading: false,-->
<!--        tableOption: tableOption,-->
<!--        JobExecuteStatusDicCache: [],-->
<!--        JobStatusDicCache: []-->
<!--      }-->
<!--    },-->
<!--    computed: {-->
<!--      ...mapGetters(['permissions'])-->
<!--    },-->
<!--    mounted: function () {-->
<!--      this.getDicJobExecuteStatusCache('job_execute_status')// 获取定时任务运行时状态-->
<!--      this.getDicJobStatusCache('job_status')// 获取定时任务状态-->
<!--    },-->
<!--    methods: {-->
<!--      changeCron(val) {-->
<!--        this.form.cronExpression = val-->
<!--      },-->
<!--      /**-->
<!--       * 定时任务分页查询-->
<!--       */-->
<!--      getList() {-->
<!--        this.tableLoading = true-->
<!--        fetchList(Object.assign({-->
<!--          descs: 'create_time',-->
<!--          current: this.page.currentPage,-->
<!--          size: this.page.pageSize-->
<!--        }, this.queryParams)).then(response => {-->
<!--          this.tableData = response.data.data.records-->
<!--          this.page.pageSize = response.data.data.pageSize-->
<!--          this.page.total = response.data.data.total-->
<!--          this.tableLoading = false-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 清除全局检索条件-->
<!--       */-->
<!--      handleSearchReset() {-->
<!--        this.queryParams = {}-->
<!--      },-->
<!--      /**-->
<!--       * 定时任务检索查询分页查询-->
<!--       */-->
<!--      handleFilter(params, done) {-->
<!--        this.queryParams = params-->
<!--        this.getList(this.page)-->
<!--        done()-->
<!--      },-->
<!--      /**-->
<!--       * 启动定时任务-->
<!--       */-->
<!--      handleStartJob(row) {-->
<!--        const jobStatus = row.jobStatus-->
<!--        if (jobStatus === '1' || jobStatus === '3') {-->
<!--          this.$confirm(-->
<!--            '即将发布或启动(任务名称:' + row.jobName + '), 是否继续?',-->
<!--            '提示',-->
<!--            {-->
<!--              confirmButtonText: '确定',-->
<!--              cancelButtonText: '取消',-->
<!--              type: 'warning'-->
<!--            }-->
<!--          ).then(() => {-->
<!--            startJobRa(row.jobId).then(response => {-->
<!--              const code = response.data.code-->
<!--              if (code === 0) {-->
<!--                this.$notify({-->
<!--                  title: '成功',-->
<!--                  message: '启动成功',-->
<!--                  type: 'success'-->
<!--                })-->
<!--                this.refreshChange()-->
<!--              }-->
<!--            }).catch(() => {-->
<!--              this.$notify.error({-->
<!--                title: '错误',-->
<!--                message: '启动失败'-->
<!--              })-->
<!--            })-->
<!--          })-->
<!--        } else {-->
<!--          this.$notify.error({-->
<!--            title: '错误',-->
<!--            message: '定时任务已运行'-->
<!--          })-->
<!--        }-->
<!--      },-->
<!--      /**-->
<!--       * 执行定时任务-->
<!--       */-->
<!--      handleRunJob(row) {-->
<!--        this.$confirm(-->
<!--          '立刻执行一次任务(任务名称:' + row.jobName + '), 是否继续?',-->
<!--          '提示',-->
<!--          {-->
<!--            confirmButtonText: '确定',-->
<!--            cancelButtonText: '取消',-->
<!--            type: 'warning'-->
<!--          }-->
<!--        ).then(() => {-->
<!--          runJobRa(row.jobId).then(response => {-->
<!--            const code = response.data.code-->
<!--            if (code === 0) {-->
<!--              this.$notify({-->
<!--                title: '成功',-->
<!--                message: '执行成功',-->
<!--                type: 'success'-->
<!--              })-->
<!--              this.refreshChange()-->
<!--            }-->
<!--          }).catch(() => {-->
<!--            this.$notify.error({-->
<!--              title: '错误',-->
<!--              message: '执行失败'-->
<!--            })-->
<!--          })-->
<!--        })-->

<!--      },-->
<!--      handleAdd() {-->
<!--        this.$refs.crud.rowAdd()-->
<!--      },-->
<!--      handleUpdate(row, index) {-->
<!--        const jobStatus = row.jobStatus-->
<!--        if (jobStatus === '1' || jobStatus === '3') {-->
<!--          this.$refs.crud.rowEdit(row)-->
<!--          console.log(index)-->
<!--          // this.$refs.crud.rowEdit(row, job)-->
<!--        } else {-->
<!--          this.$notify.error({-->
<!--            title: '错误',-->
<!--            message: '运行中定时任务不可修改，请先暂停后操作'-->
<!--          })-->
<!--        }-->
<!--      },-->
<!--      /**-->
<!--       * 暂停定时任务-->
<!--       */-->
<!--      handleShutDownJob(row) {-->
<!--        const jobStatus = row.jobStatus-->
<!--        if (jobStatus === '2') {-->
<!--          this.$confirm(-->
<!--            '即将暂停(任务名称:' + row.jobName + '), 是否继续?',-->
<!--            '提示',-->
<!--            {-->
<!--              confirmButtonText: '确定',-->
<!--              cancelButtonText: '取消',-->
<!--              type: 'warning'-->
<!--            }-->
<!--          ).then(() => {-->
<!--            shutDownJobRa(row.jobId).then(response => {-->
<!--              const code = response.data.code-->
<!--              if (code === 0) {-->
<!--                this.getList(this.page)-->
<!--                this.$notify({-->
<!--                  title: '成功',-->
<!--                  message: '暂停成功',-->
<!--                  type: 'success'-->
<!--                })-->
<!--              }-->
<!--              this.refreshChange()-->
<!--            }).catch(() => {-->
<!--              this.$notify.error({-->
<!--                title: '错误',-->
<!--                message: '暂停失败'-->
<!--              })-->
<!--            })-->
<!--          })-->
<!--        } else {-->
<!--          this.$notify.error({-->
<!--            title: '错误',-->
<!--            message: '已暂停，不要重复操作'-->
<!--          })-->
<!--        }-->
<!--      },-->
<!--      /**-->
<!--       * 刷新回调-->
<!--       */-->
<!--      refreshChange() {-->
<!--        this.getList(this.page)-->
<!--      },-->
<!--      sizeChange(pageSize){-->
<!--        this.page.pageSize = pageSize-->
<!--      },-->
<!--      currentChange(current){-->
<!--        this.page.currentPage = current-->
<!--      },-->
<!--      shutdownJobs() {-->
<!--        this.$confirm(-->
<!--          '即将暂停全部运行中定时任务, 是否继续?',-->
<!--          '提示',-->
<!--          {-->
<!--            confirmButtonText: '确定',-->
<!--            cancelButtonText: '取消',-->
<!--            type: 'warning'-->
<!--          }-->
<!--        ).then(() => {-->
<!--          shutdownJobsRa().then(response => {-->
<!--            const code = response.data.code-->
<!--            const msg = response.data.msg-->
<!--            if (code === 0) {-->
<!--              this.getList(this.page)-->
<!--              this.$notify.success(msg)-->
<!--            } else {-->
<!--              this.$notify.error('暂停失败')-->
<!--            }-->
<!--          }).catch(() => {-->
<!--            this.$notify.error('暂停失败')-->
<!--          })-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 启动全部暂停定时任务-->
<!--       */-->
<!--      startJobs() {-->
<!--        this.$confirm(-->
<!--          '即将启动全部暂定中定时任务, 是否继续?',-->
<!--          '提示',-->
<!--          {-->
<!--            confirmButtonText: '确定',-->
<!--            cancelButtonText: '取消',-->
<!--            type: 'warning'-->
<!--          }-->
<!--        ).then(() => {-->
<!--          startJobsRa().then(response => {-->
<!--            const code = response.data.code-->
<!--            if (code === 0) {-->
<!--              this.getList(this.page)-->
<!--              this.$notify.success('启动成功')-->
<!--            } else {-->
<!--              this.$notify.error('启动失败')-->
<!--            }-->
<!--          }).catch(() => {-->
<!--            this.$notify.error('启动失败')-->
<!--          })-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 刷新定时任务-->
<!--       */-->
<!--      refreshJobs() {-->
<!--        this.$confirm(-->
<!--          '即将刷新全部定时任务, 是否继续?',-->
<!--          '提示',-->
<!--          {-->
<!--            confirmButtonText: '确定',-->
<!--            cancelButtonText: '取消',-->
<!--            type: 'warning'-->
<!--          }-->
<!--        ).then(() => {-->
<!--          refreshJobsRa().then(response => {-->
<!--            const code = response.data.code-->
<!--            if (code === 0) {-->
<!--              this.getList(this.page)-->
<!--              this.$notify.success('重置成功')-->
<!--            } else {-->
<!--              this.$notify.error('重置失败')-->
<!--            }-->
<!--          }).catch(() => {-->
<!--              this.$notify.error('重置失败')-->
<!--            }-->
<!--          )-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 新增定时任务持久化处理-->
<!--       */-->
<!--      save(row, done, loading) {-->
<!--        isValidTaskName({-->
<!--          'jobName': row.jobName,-->
<!--          'jobGroup': row.jobGroup-->
<!--        }).then(response => {-->
<!--          const result = response.data.code-->
<!--          if (result !== 0) {-->
<!--            this.$notify.error('任务名称与任务组重复，请确认后重新添加')-->
<!--          } else {-->
<!--            addObj(row).then(() => {-->
<!--              this.$notify.success('创建成功')-->
<!--              this.getList(this.page)-->
<!--            }).catch(() => {-->
<!--              loading()-->
<!--            })-->
<!--          }-->
<!--          done()-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 更新定时任务持久化处理-->
<!--       */-->
<!--      update(row, index, done, loading) {-->
<!--        putObj(row).then(() => {-->
<!--          this.getList(this.page)-->
<!--          done()-->
<!--          this.$notify.success('修改成功')-->
<!--        }).catch(() => {-->
<!--          loading()-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 删除定时任务持久化处理-->
<!--       */-->
<!--      handleDelete(row) {-->
<!--        const jobStatus = row.jobStatus-->
<!--        if (jobStatus === '1' || jobStatus === '3') {-->
<!--          this.$confirm('是否确认删除(任务名称:' + row.jobName + '), 是否继续?删除后不可恢复', '警告', {-->
<!--            confirmButtonText: '确定',-->
<!--            cancelButtonText: '取消',-->
<!--            type: 'warning'-->
<!--          }).then(function () {-->
<!--            return delObj(row.jobId)-->
<!--          }).then(() => {-->
<!--            this.getList(this.page)-->
<!--            this.$notify.success('删除成功')-->
<!--          }).catch(function () {-->
<!--          })-->
<!--        } else {-->
<!--          this.$notify.error('运行中定时任务不可删除，请先暂停后操作')-->
<!--        }-->
<!--      },-->
<!--      handleJobLog(row) {-->
<!--        this.dialogFormVisible = true-->
<!--        this.$nextTick(() => {-->
<!--          this.$refs.logRef.getJobLog(row)-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 获取字典显示名称并缓存-->
<!--       */-->
<!--      getDicJobExecuteStatusCache(type) {-->
<!--        remote(type).then(response => {-->
<!--          const code = response.data.code-->
<!--          if (code === 0) {-->
<!--            const _data = response.data.data-->
<!--            this.JobExecuteStatusDicCache = _data-->
<!--          }-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 获取字典显示名称并缓存-->
<!--       */-->
<!--      getDicJobStatusCache(type) {-->
<!--        remote(type).then(response => {-->
<!--          const code = response.data.code-->
<!--          if (code === 0) {-->
<!--            const _data = response.data.data-->
<!--            this.JobStatusDicCache = _data-->
<!--          }-->
<!--        })-->
<!--      },-->
<!--      /**-->
<!--       * 获取字典定时任务执行状态字典值显示名称-->
<!--       */-->
<!--      getDicNameJobExecuteStatus(value) {-->
<!--        let re = ''-->
<!--        this.JobExecuteStatusDicCache.forEach(obj => {-->
<!--          if (obj.value === value) {-->
<!--            re = obj.label-->
<!--            return-->
<!--          }-->
<!--        })-->
<!--        return re-->
<!--      },-->
<!--      /**-->
<!--       * 获取字典定时任务状态字典值显示名称-->
<!--       */-->
<!--      getDicNameJobStatus(value) {-->
<!--        let re = ''-->
<!--        this.JobStatusDicCache.forEach(obj => {-->
<!--          if (obj.value === value) {-->
<!--            re = obj.label-->
<!--            return-->
<!--          }-->
<!--        })-->
<!--        return re-->
<!--      }-->
<!--    }-->
<!--  }-->
<!--</script>-->

<!--<style lang="scss" scoped>-->
<!--</style>-->
